import os
from langchain_openai import ChatOpenAI
import openai
from langchain_core.prompts import ChatPromptTemplate

# 设置OpenAI的API密钥，从环境变量中获取
openai.api_key = os.getenv("OPENAI_API_KEY")
# 设置OpenAI的API基础URL
openai.api_base = "https://open.xiaojingai.com/v1"
# 创建一个ChatOpenAI实例，指定模型名称和API密钥
chat = ChatOpenAI(model_name="gpt-3.5-turbo", api_key=openai.api_key, base_url=openai.api_base)

# 案例一
# 注释掉的代码：调用chat.invoke方法，传入问题"什么是LangSmith?"，并打印返回的消息内容
# message = chat.invoke("什么是LangSmith?")
# print(message.content)

# 创建一个聊天模板，包含系统、人类和AI的消息
chat_template = ChatPromptTemplate.from_messages([
    ("system", "你是一个有帮助的AI机器人，你的名字是{name}。"),
    ("human", "你好，最近怎么样？"),
    ("ai", "我很好，谢谢！"),
    ("human", "{user_input}"),
])
# # 使用模板格式化消息，传入名字为"小明"，用户输入为"你叫什么名字？"
# messages = chat_template.format_messages(name="小明", user_input="你叫什么名字？")
# # 调用chat.invoke方法，传入格式化后的消息，并打印返回的消息内容
# result = chat.invoke(messages)
# print(result.content)
#
# 使用模板格式化消息，传入名字为"小明"，用户输入为"你要去哪玩啊？"
messages = chat_template.format_messages(name="小明", user_input="你要去哪玩啊？")
# 调用chat.invoke方法，传入格式化后的消息，并打印返回的消息内容
result = chat.invoke(messages)
print(result.content)

# 使用模板格式化消息，传入名字为"老唐"，用户输入为"我要学习AI大模型！"
messages = chat_template.format_messages(name="老唐", user_input="我要学习AI大模型！")
# 调用chat.invoke方法，传入格式化后的消息，并打印返回的消息内容
result = chat.invoke(messages)
print(result.content)

# messages = chat_template.format_messages(name="老唐", user_input="我要学习AI大模型！")
# result = await chat.ainvoke(messages)
# print(result.content)
